﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SAAC.DTO;
using SAAC.BLL;

namespace SAAC.Colegiado
{
	public partial class ProcessosSemEncaminharColegiado : System.Web.UI.Page
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			gerenciaVisibilidadeComponentesMaster();
			if (!IsPostBack)
			{
				carregarGridMeusRequerimentos();
			}

		}

		private void gerenciaVisibilidadeComponentesMaster()
		{
            Menu menuAluno = (Menu)Master.FindControl("MenuAluno");
            menuAluno.Visible = false;
            Menu menuFuncionario = (Menu)Master.FindControl("MenuFuncionario");
            menuFuncionario.Visible = false;
            Menu menuProfessor = (Menu)Master.FindControl("MenuProfessor");
            menuProfessor.Visible = false;
            Menu menuColegiado = (Menu)Master.FindControl("MenuColegiado");
            menuColegiado.Visible = true;

            LinkButton link = (LinkButton)Master.FindControl("lkbCadastro");
            link.Visible = false;
		}

		#region gvwMeusRequerimentos

		private void carregarGridMeusRequerimentos()
		{
			var dtoProcesso = new ProcessoDTO();
			var bllProcesso = new ProcessoBLL();
			var listaProcessos = new List<ProcessoDTO>();

			dtoProcesso.Status = EStatusProcesso.NaoIniciado;
			listaProcessos = bllProcesso.SelectAllChild(dtoProcesso).Where(x => x.ProfessorResponsavel.Matricula == null).ToList();

			gvwMeusProcessos.DataSource = listaProcessos;
			gvwMeusProcessos.DataBind();
		}

		protected void gvwMeusProcessos_SelectedIndexChanged(object sender, EventArgs e)
		{
			pnlProcesso.Visible = true;
			txtNumero.Text = gvwMeusProcessos.SelectedRow.Cells[1].Text;
			txtDataAbertura.Text = gvwMeusProcessos.SelectedRow.Cells[2].Text;

			if (gvwMeusProcessos.SelectedRow.Cells[3].Text == "&nbsp;")
				txtDataTermino.Text = string.Empty;
			else
				txtDataTermino.Text = gvwMeusProcessos.SelectedRow.Cells[3].Text;
			txtStatus.Text = gvwMeusProcessos.SelectedRow.Cells[4].Text;
			txtNomeColegiado.Text = gvwMeusProcessos.SelectedRow.Cells[5].Text;
			txtMatriculaFuncionario.Text = gvwMeusProcessos.SelectedRow.Cells[6].Text;
		}
		#endregion

		protected void btnEncaminharProcesso_Click(object sender, EventArgs e)
		{
			pnlProfessores.Visible = true;
			var bllProcesso = new ProcessoBLL();
			var dtoProcesso = new ProcessoDTO();
			dtoProcesso.Numero = txtNumero.Text;
			bllProcesso.Select(dtoProcesso);

			var dtoProfessor = new ProfessorDTO();
			var bllProfessor = new ProfessorBLL();
			var listaProfessor = new List<ProfessorDTO>();

			dtoProfessor.Colegiado = new ColegiadoDTO();
			dtoProfessor.Colegiado.Id = dtoProcesso.Colegiado.Id;
			listaProfessor = bllProfessor.SelectAllChild(dtoProfessor).Where(x => x.Comissao != null && x.Comissao.Fim == null).ToList();

			gdvProfessor.DataSource = listaProfessor;
			gdvProfessor.DataBind();
		}

		protected void gdvProfessor_SelectedIndexChanged(object sender, EventArgs e)
		{
			var bllProcesso = new ProcessoBLL();
			var dtoProcesso = new ProcessoDTO();
			dtoProcesso.Numero = txtNumero.Text;
			bllProcesso.Select(dtoProcesso);
			dtoProcesso.ProfessorResponsavel.Matricula = Convert.ToInt32(gdvProfessor.SelectedRow.Cells[1].Text);
			bllProcesso.Update(dtoProcesso);
		}

	}
}